package org.maven.dependencybrowser.model;
/**********************************************************************
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Contributors:

**********************************************************************/
import java.util.ArrayList;
import java.util.List;

/**
 * Contains a list of all the instances of a given artifact
 */
public class ArtifactInstanceMap
{
    private String groupId;
    private String artifactId;
    private String version;

    private List<Artifact> instances;

    private boolean selected;

    public ArtifactInstanceMap(Artifact initialArtifact)
    {
        instances = new ArrayList<Artifact>();
        groupId = initialArtifact.getGroupId();
        artifactId = initialArtifact.getArtifactId();
        version = initialArtifact.getVersion();
        selected = false;
    }

    public void addInstance(Artifact artifactInstance)
    {
        instances.add(artifactInstance);
    }

    public String getArtifactId()
    {
        return artifactId;
    }

    public String getGroupId()
    {
        return groupId;
    }

    public List<Artifact> getInstances()
    {
        return instances;
    }

    public String getVersion()
    {
        return version;
    }

    public void select(boolean state)
    {
        selected = state;
        for (Artifact artifact : instances)
        {
            artifact.select(state ? Artifact.SELECTED_PRINCIPLE : Artifact.SELECTED_NONE);
        }
    }

    public boolean isSelected()
    {
        return selected;
    }

}
